ec5b557712473fe11b8c8de8c440d02a0873df36,source_gen/jetbrains/mps/baseLanguage/helgins/typeOf_ConceptFunction_InferenceRule.java,typeOf_ConceptFunction_InferenceRule,applyRule,#SNode#,22
Before Change
TypeChecker.getInstance().getRuntimeSupport().givetype(expectedRetType, argument, "jetbrains.mps.baseLanguage.helgins", "1179436928073");
} else
{
TypeChecker.getInstance().getRuntimeSupport().givetype(leastCommonSupertype, argument, "jetbrains.mps.baseLanguage.helgins", "1179436928081");
}
}
}
After Change
TypeChecker.getInstance().reportTypeError(returnStatement, "should return value", "jetbrains.mps.baseLanguage.helgins", "1186053304501");
} else
{
TypeChecker.getInstance().getRuntimeSupport().createGreaterThanInequation(TypeChecker.getInstance().getEquationManager().getRepresentator(LCS_typevar_1186052624152), TypeChecker.getInstance().getRuntimeSupport().typeOf(SLinkOperations.getTarget(returnStatement, "expression", true)), SLinkOperations.getTarget(returnStatement, "expression", true), null, "jetbrains.mps.baseLanguage.helgins", "1186053304511");
}
}
} finally {
_zCursor4.release();
}
}
// last expression statement can serve as return statement
SNode lastStatement = SequenceOperations.getLast(SLinkOperations.getTargets(SLinkOperations.getTarget(argument, "body", true), "statement", true));
if(SNodeOperations.isInstanceOf(lastStatement, "jetbrains.mps.baseLanguage.structure.ExpressionStatement")) {
SNode expression = SLinkOperations.getTarget(lastStatement, "expression", true);
TypeChecker.getInstance().getRuntimeSupport().createGreaterThanInequation(TypeChecker.getInstance().getEquationManager().getRepresentator(LCS_typevar_1186052624152), TypeChecker.getInstance().getRuntimeSupport().typeOf(expression), expression, null, "jetbrains.mps.baseLanguage.helgins", "1186053063874");
somethingReturned = true;
}
if(!(somethingReturned)) {
String whatExpected = ((expectedRetType == null) ?
"some value" :
"" + expectedRetType
);
TypeChecker.getInstance().reportTypeError(argument, "function should return " + whatExpected, "jetbrains.mps.baseLanguage.helgins", "1179436928064");
}
TypeChecker.getInstance().getRuntimeSupport().createEquation(TypeChecker.getInstance().getRuntimeSupport().typeOf(argument), TypeChecker.getInstance().getEquationManager().getRepresentator(LCS_typevar_1186052624152), argument, null, "jetbrains.mps.baseLanguage.helgins", "1186053174208");
if((expectedRetType != null)) {
TypeChecker.getInstance().getRuntimeSupport().createLessThanInequation(TypeChecker.getInstance().getRuntimeSupport().typeOf(argument), expectedRetType, argument, null, "jetbrains.mps.baseLanguage.helgins", "1186053540847");
}